package com.jingfu.Service;

import com.jingfu.dto.*;
import com.jingfu.pojo.SysRole;
import com.jingfu.pojo.SysUser;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author jingfuu@163.com
 * @version v1.0
 * @date 2021/5/14 2:39 下午
 * @description TODO
 **/
public interface UserService {
    void login(SysUser sysUser);


    /**
     * 获取用户信息详情
     * @param username
     * @return
     */
    UserDetail getUserDetail(String username);

    /**
     * 获取当前登录者的菜单返回给前端进行渲染
     * @return
     */
    List<SysPowerDTO.MenuDTO> getMenuListForCurrentUser();


    List<UserDTO> getUserList(UserDTO userDTO);

    /**
     * 查询系统所有角色集合
     * @return
     */
    List<SysRole> queryAllRoles();

    /**
     * 新增&修改用户
     * @param userAddDTO
     */
    void createOrUpdateUser(UserAddDTO userAddDTO);

    /**
     * 删除用户
     * @param userId
     */
    void removeUser(String userId);

    /**
     * 用户激活
     * @param userId
     * @param enable
     */
    void userEnable(String userId, String enable);

    List<SysPowerDTO.MenuDTO> getPermAll();

    /**
     * 修改用户基础信息
     * @param userAddDTO
     */
    void updateUserBaseInfo(UserAddDTO userAddDTO);

    /**
     * 修改用户密码
     * @param passEditDTO
     */
    void userPassEdit(PassEditDTO passEditDTO);

    /**
     *  用户头像上传
     */
    void userAvatarUpload(MultipartFile file, String userId, String fileName, HttpServletRequest request);
}
